#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QChartView>
#include <QSplineSeries>   // 绘制平滑曲线图
#include <QScatterSeries>  // 用于绘制散点图
#include <QDebug>
#include <QValueAxis>      // 用于定义和管理图表的数值轴
#include <QTimer>
#include <QRandomGenerator> // 随机数生成


/* 必需添加命名空间 */
using namespace QtCharts;


class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
private:
    /* 接收数据接口 */
    void receivedData(int data);
    // 生成随机颜色
    QColor randomColor()
    {
        int r = QRandomGenerator::global()->bounded(256); // 0-255
        int g = QRandomGenerator::global()->bounded(256); // 0-255
        int b = QRandomGenerator::global()->bounded(256); // 0-255
        return QColor(r, g, b);
    }
    /* 数据最大个数 */
    int maxSize;
    /* x 轴上的最大值 */
    int maxX;
    /* y 轴上的最大值 */
    int maxY;
    /* y 轴 */
    QValueAxis *axisY;
    /* x 轴 */
    QValueAxis *axisX;

    /* QList int 类型容器 */
    QList<int> data;

    /* QSplineSeries 对象（曲线）*/
    QSplineSeries *splineSeries;

    /* QChart 图表 */
    QChart *chart;

    /* 图表视图 */
    QChartView *chartView;

    /* 定时器 */
    QTimer *timer;

private slots:
    void timerTimeOut();
};
#endif // MAINWINDOW_H
